1. Technical Field
The invention relates to a proxy gateway for providing improved push and pull based services from a content provider on the Internet to a mobile user on a wireless network.
2. Description of Related Art
The Internet is a global network formed by the cooperative interconnection of computing networks. The Worldwide Web (WWW or Web) is a collection of files or “Web pages” of text, graphics and other media which are connected by hyperlinks to other Web pages which physically reside on the Internet. In a transaction on the WWW, a Web client typically requests information from a Web server. The requested information is transmitted from the Web server to the Web client over the Internet. Dramatically increasing expansion of Internet services using the WWW has led to increased Web traffic.
A conventional technique to reduce Web traffic and speed up Web access is to store copies of documents in a cache. U.S. Pat. No. 5,873,100 describes an Internet browser which includes an embedded cache for user controlled document retention. The cache stores a plurality of documents. At least one of the documents stored in the cache is designated as a keep document. If the storage limit of the cache is exceeded, the cache deletes the oldest document not designated as a keep document.
Web servers and Web client use hypertext transfer protocol (HTTP)/1.1 which includes cache control features. See R. Fielding et al., “Hypertext Transport Protocol HTTP/1.1” Network Working Group RFC, May 1996, URL: ftp://ftp.isi.edu/in-notes/rfc2068.txt. The original Web server assigns expiration times to responses generated for Web client requests. An expiration judgment is performed in the cache when a cached entry is requested by a client. If the cached entry has not expired, the cache sends the entry to the client; otherwise, it sends a conditional request to the Web server. A validation check is performed at the Web server to validate if the cached entry is still useable. If the cached entry is useable, the Web server sends a validator to the Web client; otherwise, it sends an updated response.
In certain systems, there exists very little local memory. In these systems, caching and prefetching is preferably performed at a proxy server intermediate between the Web server and the Web client. Prefetching is a technique in which additional items are fetched when a request is made for a particular item. U.S. Pat. No. 5,925,100 describes a system having a dumb client environment in which a smart server determines when to send a prefetched object to the user. The prefetched objects are determined based on an object based prefetch primitive present in the client's executing application.
Other conventional prefetch schemes are based on predicting at a given time the likelihood that a given document will be accessed in the near future. Prefetch schemes have been described in which a prediction module computes the access probability that a file will be requested in the near future. Each file whose access probability exceeds a server's prefetch threshold is prefetched. See Z. Jiang and L. Kleinrock, “An Adaptive Network Prefetch Scheme,” IEEE J. on Selec. Areas in Common., vol. 16, no. 3, April 1998, pp. 358-368, and Z. Jiang and L. Kleinrock, “Web Prefetching in a Client Environment,” IEEE Personal Communications, vol. 5, no. 5, October 1998, pp. 25-34.
In addition, prefetch schemes have been described which are based on popularity based prefetching. See E. P. Markatos, “Main Memory Caching of Web Documents,” Computer Networks and ISDN Systems, vol. 28, issues 7-11, pp. 893-906, 1996. Main menu caching of frequently requested documents is performed on the Web server. Similarly, U.S. Pat. No. 5,991,306 describes a pull based intelligent caching system for delivering data over the Internet. Content of frequently requested documents is downloaded from the content provider and cached at a local service provider. The content is cached prior to a peak time when subscribers are likely to request the content. A pattern recognizer detects behavior patterns based on subscriber requests to determine which content the subscribers are most likely to request and when. When content is finally requested, the data is streamed continuously for rendering at the subscriber computer.
Another prefetching scheme type is based on interactive prefetching in which prefetching is determined by the interaction between the client and the server. For example, an interactive prefetching scheme has been proposed in which the system gathers references by passing hypertext markup language (HTML) in the referenced page and collecting referenced pages with each request. See K. Chinen and S. Yamaguchi, “An Interactive Prefetching Proxy Server for Improvement of WWW Latency,” INET'97, Kuala Lumpur, Malaysia, 1997.
Wireless systems and mobile users are typically limited to small bandwidth and small memory. A wireless application protocol (WAP) has been developed to promote industry-wide specifications for technology useful in developing applications and services, such as Internet services, that operate over wireless communication networks, as described in Wireless Architecture Protocol Specification, Wireless Application Protocol Forum, Ltd., Version 30, April 1998 and WAP Push Architectural Overview, Version 08, November 1999. WAP framework defines pull technology as a transaction initiated by the client to pull information from a server. For example, the World Wide Web is an example of pull technology in which a user enters a universal resource locator (URL) which is sent to the server and the server sends a Web page to the user. WAP framework defines push technology as a transmission to the client without previous action by the client. Accordingly, the server pushes information to the client without an explicit request from the client. It is desirable to provide a system for wireless push and pull based Internet services which expeditiously allows users to gain access to desired Web information.